home *** CD-ROM | disk | FTP | other *** search
/ ftp.cs.arizona.edu / ftp.cs.arizona.edu.tar / ftp.cs.arizona.edu / tsql / doc / tsql.mail / 000022_csj@iesd.auc.dk _Mon Dec 21 19:43:59 1992.msg < prev    next >
Internet Message Format  |  1996-01-31  |  42KB

  1. Received: from iesd.auc.dk by optima.cs.arizona.edu (5.65c/15) via SMTP
  2.     id AA14272; Mon, 21 Dec 1992 11:45:29 MST
  3. Received: from yellow.iesd.auc.dk by iesd.auc.dk with SMTP id AA25730
  4.   (5.65c8/IDA-1.5/MD for <tsql@cs.arizona.edu>); Mon, 21 Dec 1992 19:43:59 +0100
  5. Date: Mon, 21 Dec 1992 19:43:59 +0100
  6. From: "Christian S. Jensen" <csj@iesd.auc.dk>
  7. Message-Id: <199212211843.AA25730@iesd.auc.dk>
  8. To: tsql@cs.arizona.edu
  9. Subject: SUMMARY OF TDB TERMS
  10.  
  11.            SUMMARY OF PROPOSED TEMPORAL DATABASE TERMS
  12.  
  13. A summary of the temporal database terms proposed during Fall 1992 is
  14. now available via anonymous ftp from cs.arizona.edu.  The summary
  15. document is titled statusDec92 and may be found in the tsql directory,
  16. in ".dvi," ".ps," and ".tex" formats.  In addition, the ".tex" version
  17. is appended below.
  18.  
  19. The summary is provided as a service to current and prospective
  20. contributors of glossary entries.  Comments, improvements and
  21. criticisms, and proposals for new terms are highly encouraged. They
  22. should be sent to the mailing list, tsql@cs.arizona.edu.
  23.  
  24. The goal of this initiative is to create a consensus glossary of
  25. temporal database terms.  For additional details, please see the
  26. introductory section of the summary and the other documents in the
  27. tsql directory.
  28.  
  29. Christian S. Jensen
  30. Aalborg University
  31. csj@iesd.auc.dk
  32.  
  33. \documentstyle[11pt]{article}
  34. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  35. % December version of glosary entries proposed until 12/15/92.
  36. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  37.  
  38. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  39. % VARIOUS MACROS
  40. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  41.  
  42. \long\def\comment#1{}
  43. \newcommand{\entry}[1]{\vspace*{-3pt} \subsubsection*{#1} \vspace*{-5pt}}
  44.  
  45. \setlength{\textheight}{8.85in}%8.75in}
  46. \setlength{\columnsep}{2.0pc}
  47. \setlength{\textwidth}{6.8in}
  48. \setlength{\footheight}{0.0in}
  49. \setlength{\topmargin}{0.0in}%{0.25in}
  50. \setlength{\headheight}{0.0in}
  51. \setlength{\headsep}{0.0in}
  52. \setlength{\oddsidemargin}{-.19in}
  53. \setlength{\parindent}{1pc}
  54.  
  55. \renewcommand{\baselinestretch}{1}
  56.  
  57. \newcommand{\dicstart}{\begin{list}{}{%
  58. \setlength{\labelwidth}{12pt}%
  59. \setlength{\rightmargin}{0pt}\setlength{\itemsep}{4pt}%
  60. \setlength{\leftmargin}{1cm}\setlength{\parsep}{0pt}%
  61. \setlength{\labelsep}{8pt}}}
  62.  
  63. \newcommand{\dicend}{\end{list}}
  64.  
  65. \newcommand{\name}[1]{\item[{\bf {#1}}]}
  66.  
  67. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  68. % PAPER START
  69. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  70.  
  71. \begin{document}
  72.  
  73. \title{\Large\bf Proposed Glossary Entries---December 1992}
  74. \author{Christian~S.~Jensen, editor\thanks{These definitions were
  75. proposed by Jim Clifford, Curtis Dyreson, Shashi Gadia, Sushil
  76. Jajodia, Christian S.~Jensen, Nick Kline, Daniel Nonen, John
  77. F.~Roddick, Arie Segev, Richard T.~Snodgrass, Mike D.~Soo, and
  78. Abdullah Tansel. Correspondence may be directed to the TSQL electronic
  79. mail distribution, {\tt tsql@cs.arizona.edu}, or to the editor at
  80. Aalborg University, Datalogi, Fr.~Bajers Vej 7E, DK--9220 Aalborg
  81. {\O}, Denmark, {\tt csj@iesd.auc.dk}.}}
  82. \date{}
  83. \maketitle
  84. \small
  85. \subsection*{\centering Abstract}
  86.  
  87. This document describes the current status, as of December 15, 1992,
  88. of an initiative aimed at creating a consensus glossary of temporal
  89. database concepts and names. It contains the set of currently
  90. proposed, complete glossary entries. Existing terms and criteria for
  91. evaluation of glossary entries are contained in appendices.
  92.  
  93. The document is intended to help future contributors of glossary
  94. entries. Proposed glossary entries should be sent to {\tt
  95. tsql@cs.arizona.edu}. Other information related to the initiative may
  96. be found at {\tt cs.arizona.edu} in the {\tt tsql} directory,
  97. accessible via anynomous ftp.
  98.  
  99. \small\normalsize
  100.  
  101. \section{Introduction}
  102. \label{sec:int}
  103.  
  104. This document is a structured presentation of the current status of an
  105. initiative aimed at creating a consensus glossary of temporal database
  106. terms. It contains the list of complete proposals for temporal database
  107. concepts and names which have so far been submitted to the mailing
  108. list {\tt tsql@cs.arizona.edu}. The purpose of the document is to give
  109. potential contributors an overview of the terms proposed so far.
  110.  
  111. In order to obtain a consensus glossary, the proposed concepts and
  112. names are intended to be discussed during the first workshop on
  113. temporal databases (``International Workshop on an Infrastructure for
  114. Temporal Databases''), scheduled to be held in Arlington, TX, June
  115. 14-16, 1993. The objective of this workshop is to define and establish
  116. a common infrastructure of temporal databases and to develop a
  117. consensus base document that will provide a foundation for
  118. implementation and standardization as well as for further research.
  119.  
  120. During the preparation of a forthcoming book on temporal databases
  121. ({\em Temporal Databases: Theory, Design, and Implementation,} edited
  122. by A.~Tansel, J.~Clifford, S.~Gadia, S.~Jajodia, A.d~Segev, and
  123. R.~Snodgrass, Benjamin/Cummings Publishers, Database Systems and
  124. Applications Series), a glossary on temporal database concepts and
  125. terms was developed. The glossary also appears in the September 1992
  126. issue of the SIGMOD Record. The terms and concepts from this glossary
  127. are included here as an appendix in a dictionary-like format.
  128. Evaluation criteria, to be used when proposing new glossary entries,
  129. are also included in the appendix.
  130.  
  131. \section{New, Proposed Glossary Entries}
  132. \label{sec:new}
  133.  
  134. \subsection{Temporal Data Type}
  135. \label{sec:tem}
  136.  
  137. \entry{Definition} 
  138. The user-defined temporal data type is a time representation specially
  139. designed to meet the specific needs of the user.  For example, the
  140. designers of a database used for class scheduling in a school might be
  141. based on a ``Year:Term:Day:Period'' format.  Terms belonging to a
  142. user-defined temporal data type get the same query language support as
  143. do terms belonging to built-in temporal data types such as the DATE
  144. data type.
  145.  
  146. \entry{Alternative Names}
  147. User-defined temporal data type, auxiliary temporal data type.
  148.  
  149. \entry{Discussion}
  150. The phrase ``user-defined temporal data type'' is uncomfortably similar
  151. to the phrase ``user-defined time'', which is an orthogonal concept.
  152. Nevertheless, it is an appropriate description for the intended usage
  153. and we have used in our work.  If the notion of providing special
  154. purpose temporal terms becomes more popular, I suspect the shorter
  155. term ``Temporal Data Type'' will be sufficiently descriptive.
  156.  
  157. \subsection{Schema Evolution}
  158.  
  159. \entry{Definition}
  160. A database system supports {\em schema evolution} if it permits
  161. modification of the database schema without the loss of extant data.
  162. No historical support for previous schemas is required.
  163.  
  164. \entry{Alternative Names}   
  165. Schema versioning, data evolution.
  166.  
  167. \entry{Discussion}
  168.  
  169. While support for ``schema evolution'' indicates that an evolving
  170. schema may be supported, the term ``schema versioning'' indicates that
  171. previous versions of an evolving schema are also supported. Therefore,
  172. ``schema versioning'' is appropriate for a more restrictive concept.
  173.  
  174. The name ``data evolution'' is inappropriate because ``data'' refers
  175. to the schema contents, i.e., the extension rather than the intension.
  176. Data evolution is supported by conventional update operators.
  177.  
  178. While some confusion exists as to its exact definition, ``schema
  179. evolution'' is an accepted name and is widely used already.
  180.  
  181. \subsection{Schema Versioning}
  182.  
  183. \entry{Definition}
  184.  
  185. A database system accomodates {\em schema versioning} if it allows the
  186. querying of all data, both retrospectively and prospectively, through
  187. user-definable version interfaces. While support for schema versioning
  188. implies the support for schema evolution, the reverse is not true.
  189.  
  190. Support for schema versioning requires that a history of changes be
  191. maintained to enable the retention of past schema definitions.
  192.  
  193.  
  194. \entry{Alternative Names}   
  195. Schema evolution, data evolution.
  196.  
  197. \entry{Discussion}
  198. The name ``schema evolution'' does not indicate that previously
  199. current versions of the evolving schema are also supported. It is thus
  200. less precise that ``schema versioning.'' As schema evolution, schema
  201. versioning is an intensional concept; ``data evolution'' has
  202. extensional connotations and is inappropriate.
  203.  
  204. \subsection{Snapshot Equivalent}
  205.  
  206. \entry{Definition}         
  207. Informally, two tuples are {\em snapshot equivalent\/} if the snapshots of the
  208. tuples at all times are identical.
  209.  
  210. Let temporal relation schema $R$ have $n$ time dimensions, $D_i$, $i =
  211. 1, \ldots, n$, and let $\tau^i$, $i = 1, \ldots, n$ be corresponding
  212. timeslice operators, e.g., the valid timeslice and transaction
  213. timeslice operators. Then, formally, tuples $x$ and $y$
  214. are snapshot equivalent if 
  215.  
  216. \[ \forall t_1 \in D_1 \ldots \forall t_n \in D_n (
  217. \tau^n_{t_n}( \ldots (\tau^1_{t_1}(x)) \ldots ) =
  218. \tau^n_{t_n}( \ldots (\tau^1_{t_1}(y)) \ldots )) \;\; .\]
  219.  
  220. \noindent
  221. Similarly, two relations are {\em snapshot equivalent\/} if at every time their
  222. snapshots are equal.
  223. {\em Snapshot equivalence\/} is a binary relation that can be applied to
  224. tuples and to relations.
  225.  
  226. \entry{Alternative Names}   
  227. Weakly equal, temporally weakly equal, weak equivalence.
  228.  
  229. \entry{Discussion}
  230. Weak equivalence has been used by Ullman to relate two algebraic
  231. expressions (Ullman, Principles of Database Systems, Second Edition,
  232. page 309). Hence, ``temporally weakly equal'' is preferable to
  233. ``weakly equal'' (E7).
  234.  
  235. In comparing ``temporally weakly equal'' with ``snapshot equivalent'',
  236. the former term is longer and more wordy, and is
  237. somewhat awkward, in that it contains two adverbs ($-$E2). 
  238. ``Temporally weak'' is not intuitive---in what way is it weak?
  239. Snapshot equivalent explicitly identifies the source of the
  240. equivalence (+E8).
  241.  
  242. \subsection{Snapshot-Equivalence Preserving Operator}
  243.  
  244. \entry{Definition}         
  245.  
  246. A unary operator $F$ is {\em snapshot-equivalence preserving\/} if
  247. relation $r$ is snapshot equivalent to $r'$ implies $F(r)$ is snapshot
  248. equivalent to $F(r')$. This definition may be extended to operators
  249. that accept two or more argument relation instances.
  250.  
  251. \entry{Alternative Names}   
  252. Weakly invariant operator, is invariant under weak binding of belongs to.
  253.  
  254. \entry{Discussion}
  255. This definition does not rely on the term ``weak binding'' (+E7).
  256.  
  257. \subsection{Snapshot Equivalence Class}
  258.  
  259. \entry{Definition}         
  260. A {\em snapshot equivalence class\/} is a set of relation instances that
  261. are all snapshot equivalent to each other.
  262.  
  263. \entry{Alternative Names}   
  264. Weak relation.
  265.  
  266. \entry{Discussion}
  267. ``Weak relation'' is not intuitive, as the concept identifies a set of relation
  268. instances, not a single instance ($-$E8).
  269.  
  270. \subsection{Value Equivalence}
  271.  
  272. \entry{Definition}         
  273. Informally, two tuples on the same (temporal) relation schema are {\em
  274. value equivalent} if they have identical non-timestamp attribute
  275. values.
  276.  
  277. To formally define the concept, let temporal relation schema $R$ have
  278. $n$ time dimensions, $D_i$, $i = 1, \ldots, n$, and let $\tau^i$, $i =
  279. 1, \ldots, n$ be corresponding timeslice operators, e.g., the valid
  280. timeslice and transaction timeslice operators. Then tuples $x$ and $y$
  281. are value equivalent if
  282.  
  283. \begin{eqnarray*}
  284. \exists t_1 \in D_1 \ldots \exists t_n \in D_n (\tau^n_{t_n}(
  285. \ldots (\tau^1_{t_1}(x)) \ldots ) \neq \emptyset)
  286. & \wedge &
  287. \exists s_1 \in D_1, \ldots,  s_n \in D_n (\tau^n_{s_n}( \ldots
  288. (\tau^1_{s_1}(y)) \ldots ) \neq \emptyset) \\
  289. \Rightarrow \;\;\;
  290. \bigcup_{\forall t_1 \in D_1,\ldots, t_n \in D_n}
  291.     \hspace*{-.8cm}\tau^n_{t_n}(\ldots(\tau^1_{t_1}(x))\ldots)
  292. \hspace{.6cm} & = &
  293.   \bigcup_{\forall s_1 \in D_1,\ldots, s_n \in D_n}
  294.     \hspace*{-.8cm}\tau^n_{s_n}(\ldots(\tau^1_{s_1}(y))\ldots) \;\; .
  295. \end{eqnarray*}
  296.  
  297. \noindent
  298. Thus the set of tuples in snapshots of $x$ and the set of tuples in
  299. snapshots of $y$ are required to be identical. This is required only
  300. when each tuple has some non-empty snapshot.
  301.  
  302. \entry{Alternative Names}   
  303. None.
  304.  
  305. \entry{Discussion}
  306. The concept of value equivalent tuples has been shaped to be
  307. convenient when addressing concepts such as coalescing, normal forms,
  308. etc. The concept is distinct from related notions of the normal form
  309. SG1NF and {\em mergeable} tuples.
  310.  
  311. Phrases such as ``having the same visible attribute values'' and
  312. ``having duplicate values'' have been used previously.
  313.  
  314. The orthogonality criterion (+E1) is satisfied. Further, the concept
  315. is a straight-forward generalization of identity of tuples in the
  316. snapshot-relational model. There are no competing names (+E3), the
  317. name seems open-endend (+E4) and does not appear to have other
  318. meanings (+E5). Further, the name is consistent with existing
  319. terminology (+E7) and does not violate other criteria.
  320.  
  321. \subsection{Fixed Span}
  322.  
  323. \entry{Definition}
  324. The duration of a span is either context-dependent or
  325. context-independent. A {\em fixed span\/} has a context-independent
  326. duration. For example, the span {\tt one hour} has a duration of 60
  327. minutes and is therefore a fixed span.
  328.  
  329. \entry{Alternative Names}
  330. Constant span.
  331.  
  332. \entry{Discussion}
  333. Fixed span is short (+E2), precise (+E9), and has no conflicting
  334. meanings (+E5).
  335.  
  336. ``Constant'' appears more precise (+E8) and intuitive (+E9), but it is
  337. also used as a keyword in several programming languages ($-$E5).
  338.  
  339. \subsection{Variable Span}
  340.  
  341. \entry{Definition}
  342. A span that is not fixed is {\em variable\/}---the value of the span
  343. is dependent on the context in which it appears. For example, the
  344. span {\tt one month} represents a duration of between twenty-eight and
  345. thirty-one days depending on the context in which it is used.
  346.  
  347. \entry{Alternative Names}
  348. Moving span.
  349.  
  350. \entry{Discussion}
  351. Variable span is intuitive (+E9), and precise (+E9).  
  352.  
  353. ``Moving span'' is unintuitive ($-$E9) and has informal spatial
  354. connotations ($-$E5).
  355.  
  356. \subsection{Physical Clock}
  357.  
  358. \entry{Definition}
  359. A {\em physical clock\/} is a physical process coupled with a method
  360. of measuring that process. Although the underlying physical process
  361. is continuous, the physical clock measurements are discrete, hence a
  362. physical clock is discrete.
  363.  
  364. \entry{Alternative Names}   
  365. Clock.
  366.  
  367. \entry{Discussion}
  368. A physical clock by itself does not measure time; it only measures the
  369. process. For instance, the rotation of the earth measured in solar
  370. days is a physical clock. Most physical clocks are based on cyclic
  371. physical processes (such as the rotation of the earth). The modifier
  372. ``physical'' is used to distinguish this kind of clock from other
  373. kinds of clocks, e.g., the time-line clock ($+$E9). It is also
  374. descriptive in so far as physical clocks are based on recurring
  375. natural or man-made phenomena ($+$E8).
  376.  
  377. \subsection{Time-line Clock}
  378.  
  379. \entry{Definition}
  380. In the discrete model of time, a {\em time-line clock\/} is a set of
  381. physical clocks coupled with some specification of when each physical
  382. clock is authoritative. Each chronon in a time-line clock is a
  383. chronon (or a regular division of a chronon) in an identified,
  384. underlying physical clock. The time-line clock switches from one
  385. physical clock to the next at a synchronization point. A
  386. synchronization point correlates two, distinct physical clock
  387. measurements. The time-line clock must be anchored at some chronon to
  388. a unique physical state of the universe.
  389.  
  390. \entry{Alternative Names}   
  391. Base-line clock, time-segment clock.
  392.  
  393. \entry{Discussion}
  394.  
  395. A time-line clock glues together a sequence of physical clocks to
  396. provide a consistent, clear semantics for a discrete time-line. A
  397. time-line clock provides a clear, consistent semantics for a discrete
  398. time-line by gluing together a sequence of physical clocks. Since the
  399. range of most physical clocks is limited, a time-line clock is usually
  400. composed of many physical clocks. For instance, a tree-ring clock can
  401. only be used to date past events, and the atomic clock can only be
  402. used to date events since the 1950s. The term ``time-line'' has a
  403. well-understood informal meaning, as does ``clock,'' which we coopt
  404. for this definition ($+$E5). This concept currently has no name
  405. ($+$E7)($-$E3), but it is used for every timestamp (e.g., SQL2 uses
  406. the mean solar day clock---the basis of the Gregorian calendar---as
  407. its time-line clock). The modifier ``time-line'' distinguishes this
  408. clock from other kinds of clocks ($+$E1). Time-line is more intuitive
  409. than ``base-line'' ($+$E8), but less precise (mathematically) than
  410. ``time-segment,'' since the time-line clock usually describes a
  411. segment rather than a line ($-$E9). We prefer time-line clock to
  412. time-segment clock because the former term is more general ($+$E4) and
  413. is intuitively appealing.
  414.  
  415. \subsection{Time-line Clock Granularity}
  416.  
  417. \entry{Definition}         
  418. The {\em time-line clock granularity\/} is the uniform size of each
  419. chronon in the time-line clock.
  420.  
  421. \entry{Alternative Names}   
  422. None.
  423.  
  424. \entry{Discussion}
  425. The modifier ``time-line'' distinguishes this kind of granularity from
  426. other kinds of granularity ($+$E1) and describes precisely where this
  427. granularity applies ($+$E9).
  428.  
  429. \subsection{Beginning}
  430.  
  431. \entry{Definition}         
  432. The time-line supported by any temporal DBMS is, by necessity, finite
  433. and therefore has a smallest and largest representable chronon. The
  434. distinguished value {\em beginning\/} is a special valid-time event
  435. preceding the smallest chronon on the valid-time line.  Beginning has
  436. no transaction-time semantics.
  437.  
  438. \entry{Alternative Names}   
  439. Start, begin, commencement, origin, negative infinity.
  440.  
  441. \entry{Discussion}
  442. Beginning has the advantage of being intuitive (+E8), and does not
  443. have conflicting meanings (+E5).
  444.  
  445. ``Begin'' appears to be more straight-forward (+E8) but suffers from
  446. conflicting meanings since it is a common programming language keyword
  447. ($-$E5).
  448.  
  449. ``Start,'' ``commencement,'' and ``origin'' are awkward to use, e.g.,
  450. ``Start precedes the event,'' ``Commencement precedes the event,'' and
  451. ``Origin precedes the event.'' ($-$E8). Furthermore, choosing start
  452. would require us to choose ``end'' for the opposite concept, and end
  453. is a common programming language keyword ($-$E5). Origin also has a
  454. conflicting meaning relative to calendars ($-$E5).
  455.  
  456. Lastly, ``negative infinity'' is longer ($-$E2) and slightly
  457. misleading since it implies that time is infinite ($-$E9). This may
  458. or may not be true depending on theories about the creation of the
  459. universe. Also, negative infinity has a well-established mathematical
  460. meaning ($-$E5).
  461.  
  462. \subsection{Forever}
  463.  
  464. \entry{Definition}         
  465. The distinguished value {\em forever\/} is a special valid-time event
  466. following the largest chronon on the valid-time line. Forever has no
  467. transaction-time semantics.
  468.  
  469. \entry{Alternative Names}   
  470. Infinity, positive infinity.
  471.  
  472. \entry{Discussion}
  473. Forever has the advantage of being intuitive (+E8) and does not have
  474. conflicting meanings (+E5).
  475.  
  476. ``Infinity'' and ``positive infinity'' both appear to be more
  477. straightforward but have conflicting mathematical meanings ($-$E5).
  478. Furthermore, positive infinity is longer and would require us to
  479. choose ``negative infinity'' for its opposite ($-$E2).
  480.  
  481. \subsection{Initiation}
  482. The distinguished value {\em initiation\/} denotes the
  483. transaction-time when the database was created, i.e., the chronon
  484. during which the first update to the database occurred. Initiation
  485. has no valid-time semantics.
  486.  
  487. \entry{Alternative Names}   
  488. Start, begin, commencement, origin, negative infinity, beginning.
  489.  
  490. \entry{Discussion}
  491. The arguments against ``start,'' ``begin,'' ``commencement,''
  492. ``origin,'' and ``negative infinity'' are as in the discussion of
  493. beginning.
  494.  
  495. Initiation is preferred over beginning since transaction-time is
  496. distinct from valid-time. Using different terms for the two concepts
  497. avoids conflicting meanings (+E5).
  498.  
  499. \subsection{Timestamp Interpretation}
  500.  
  501. \entry{Definition}
  502. In the discrete model of time, the {\em timestamp interpretation\/}
  503. gives the meaning of each timestamp bit pattern in terms of some
  504. time-line clock chronon (or group of chronons), that is, the time to
  505. which each bit pattern corresponds. The timestamp interpretation is a
  506. many-to-one function from time-line clock chronons to timestamp bit
  507. patterns.
  508.  
  509. \entry{Alternative Names}  
  510. None.
  511.  
  512. \entry{Discussion}  
  513. Timestamp interpretation is a concise ($+$E2), intuitive ($+$E8),
  514. precise ($+$E9) term for a widely-used but currently undefined concept
  515. ($+$E7).
  516.  
  517. \subsection{Timestamp Granularity}
  518.  
  519. \entry{Definition}         
  520. In the discrete model of time, the {\em timestamp granularity\/} 
  521. is the size of each chronon in a timestamp interpretation.
  522. For instance, if the timestamp granularity is one second, then
  523. the size of each chronon in the timestamp interpretation is one
  524. second (and vice-versa).
  525.  
  526. \entry{Alternative Names}   
  527. Time granularity.
  528.  
  529. \entry{Discussion}
  530. Timestamp granularity is not an issue in the continuous model of time.
  531. The adjective ``timestamp'' is used to distinguish this kind of
  532. granularity from other kinds of granularity, such as the granularity
  533. of non-timestamp attributes ($+$E9,$+$E1). ``Time granularity'' is
  534. much too vague a term since there is a different granularity
  535. associated with temporal constants, timestamps, physical clocks, and
  536. the time-line clock although all these concepts are time-related.
  537. Each time dimension has a separate timestamp granularity. A time,
  538. stored in a database, must be stored in the timestamp granularity
  539. regardless of the granularity of that time (e.g., the valid-time date
  540. January 1st, 1990 stored in a database with a valid-time timestamp
  541. granularity of a second must be stored as a particular second during
  542. that day, perhaps midnight January 1st, 1990). If the context is
  543. clear, the modifier ``timestamp'' may be omitted, for example,
  544. ``valid-time timestamp granularity'' is equivalent to ``valid-time
  545. granularity'' ($+$E2).
  546.  
  547.  
  548. \subsection{Time Indeterminacy}
  549.  
  550. \entry{Definition}
  551. Information that is {\em time indeterminate\/} can be characterized as
  552. ``don't know when'' information, or more precisely, ``don't know {\em
  553. exactly\/} when'' information. The most common kind of time
  554. indeterminacy is valid-time indeterminacy or user-defined time
  555. indeterminacy. Transaction-time indeterminacy is rare because
  556. transaction times are always known exactly.
  557.  
  558. \entry{Alternative Names}  
  559. Fuzzy time, time imprecision, time incompleteness.
  560.  
  561. \entry{Discussion}
  562.  
  563. Often a user knows only approximately when an event happened, when an
  564. interval began and ended, or even the duration of a span. For
  565. instance, she may know that an event happened ``between 2 PM and 4
  566. PM,'' ``on Friday,'' ``sometime last week,'' or ``around the middle of
  567. the month.'' She may know that a airplane left ``on Friday'' and
  568. arrived ``on Saturday.'' Or perhaps, she has information that
  569. suggests that a graduate student takes ``four to fifteen'' years to
  570. write a dissertation. These are examples of time indeterminacy. The
  571. adjective ``time'' allows parallel kinds of indeterminacy to be
  572. defined, such as spatial indeterminacy ($+$E1). We prefer ``time
  573. indeterminacy'' to ``fuzzy time'' since fuzzy has a specific, and
  574. different, meaning in database contexts ($+$E8). There is a subtle
  575. difference between indeterminate and imprecise. In this context,
  576. indeterminate is a more general term than imprecise since precision is
  577. commonly associated with making measurements. Typically, a precise
  578. measurement is preferred to an imprecise one. Imprecise time
  579. measurements, however, are just one source of time indeterminate
  580. information ($+$E9). On the other hand, ``time incompleteness'' is
  581. too general. Time indeterminacy is a specific kind of time incomplete
  582. information.
  583.  
  584. \subsection{Period of Indeterminacy}
  585.  
  586. \entry{Definition}
  587. The {\em period of indeterminacy\/} is either an anchored duration
  588. associated with an indeterminate event or a duration associated with
  589. an indeterminate span, that delimits the range of possible times
  590. represented by the event or span.
  591.  
  592. \entry{Alternative Names} 
  593. Interval of indeterminacy, fuzzy interval.
  594.  
  595. \entry{Discussion}
  596. The period of indeterminacy associated with an indeterminate event is
  597. an anchored duration that delimits the range of possible times during
  598. which the event occurred. The event happened sometime during the
  599. period of indeterminacy but it is unknown exactly when. An anchored
  600. duration is usually referred to as an interval, however, in this
  601. context, we prefer to call it a period because the syntactic
  602. difference between an ``indeterminate interval'' and an ``interval of
  603. indeterminacy'' is slight, while the semantic difference is great.
  604. Hence, while using ``interval of indeterminacy'' might be more precise
  605. ($+$E9), it would also be more confusing ($-$E8). Using ``fuzzy
  606. interval'' would also be confusing due to the influence of fuzzy
  607. databases ($+$E5).
  608.  
  609. \subsection{Temporal Specialization}
  610.  
  611. \entry{Definition}
  612.  
  613. {\em Temporal specialization} denotes the restriction of the
  614. interrelationship between otherwise independent (implicit or explicit)
  615. timestamps in relations. An example is a relation where facts are
  616. always inserted after they were valid in reality. In such a relation,
  617. the transaction time would always be after the valid time. Temporal
  618. specialization may be applied to relation schemas, relation instances,
  619. and individual tuples.
  620.  
  621. \entry{Alternative Names}   
  622.  
  623. Temporal restriction.
  624.  
  625. \entry{Discussion}
  626.  
  627. Data models exist where relations are required to be specialized, and
  628. temporal specializations often constitute important semantics about
  629. temporal relations that may be utilized for, e.g., query optimization
  630. and processing purposes.
  631.  
  632. The chosen name is more widely used than the alternative name (+E3).
  633. The chosen name is new (+E5) and indicates that specialization is done
  634. with respect to the temporal aspects of facts (+E8). Temporal
  635. specialization seems to be open-ended (+E4). Thus, an opposite
  636. concept, temporal generalization, has been defined. ``Temporal
  637. restriction'' has no obvious opposite name ($-$E4).
  638.  
  639. \subsection{Specialized Bitemporal Relationship}
  640.  
  641. \entry{Definition}
  642.  
  643. A temporal relation schema exhibits a {\em specialized bitemporal
  644. relationship} if all instances obey some given specialized
  645. relationship between the (implicit or explicit) valid and transaction
  646. times of the stored facts. Individual instances and tuples may also
  647. exhibit specialized bitemporal relationships. As the transaction times
  648. of tuples depend on when relations are updated, updates may also be
  649. characterized by specialized bitemporal relationships.
  650.  
  651. \entry{Alternative Names}
  652.  
  653. Restricted bitemporal relationship.
  654.  
  655. \entry{Discussion}
  656.  
  657. The primary reason for the choice of name is consistency with the
  658. naming of temporal specialization (+E1). For additional discussions,
  659. see temporal specialization.
  660.  
  661. \subsection{Retroactive Bitemporal Relation}
  662.  
  663. \entry{Definition}
  664.  
  665. A bitemporal relation schema is {\em retroactive} if each stored fact
  666. of any instance is always valid in the past. The concept may be
  667. applied to bitemporal relation instances, individual tuples, and to
  668. updates.
  669.  
  670. \entry{Alternative Names}
  671.  
  672. None.
  673.  
  674. \entry{Discussion}
  675.  
  676. The name is motivated by the observation that a retroactive bitemporal
  677. relation contains only information concerning the past (+E8).
  678.  
  679. \subsection{Predictive Temporal Relation}
  680.  
  681. \entry{Definition}
  682.  
  683. A temporal relation schema including at least valid time is {\em
  684. predictive} if each fact of any relation instance is valid in the
  685. future when it is being stored in the relation. The concept may be
  686. applied to temporal relation instances, individual tuples, and to
  687. updates.
  688.  
  689. \entry{Alternative Names}   
  690.  
  691. Proactive bitemporal relation.
  692.  
  693. \entry{Discussion}
  694.  
  695. Note that the concept is applicable only to relations which support
  696. valid time, as facts valid in the future cannot be stored otherwise.
  697.  
  698. The choice of ``predictive'' over ``proactive'' is due to the more
  699. frequent every-day use of ``predictive,'' making it a more intuitive
  700. name (+E8). In fact, ``proactive'' is absent from many dictionaries.
  701. Tuples inserted into a predictive bitemporal relation instance are, in
  702. effect, predictions about the future of the modeled reality.  Still,
  703. ``proactive'' is orthogonal to ``retroactive'' ($-$E1).
  704.  
  705. \subsection{Degenerate Bitemporal Relation}
  706.  
  707. \entry{Definition}
  708.  
  709. A bitemporal relation schema is {\em degenerate} if updates to it's
  710. relation instances are made immediately when something changes in
  711. reality, with the result that the values of the valid and transaction
  712. times are identical. The concept may be applied to bitemporal relation
  713. instances, individual tuples, and to updates.
  714.  
  715. \entry{Alternative Names}
  716.  
  717. None.
  718.  
  719. \entry{Discussion}
  720.  
  721. ``Degenerate bitemporal relation'' names a previously unnamed concept
  722. that is frequently used. A degenerate bitemporal relation resembles a
  723. transaction-time relation in that only one timestamp is necessary.
  724. Unlike a transaction-time relation, however, it is possible to pose
  725. both valid-time and transaction-time queries on a degenerate
  726. bitemporal relation.
  727.  
  728. The use of ``degenerate'' is intended to reflect that the two time
  729. dimensions may be represented as one, with the resulting limited
  730. capabilities.
  731.  
  732. \subsection{Tick}
  733.  
  734. \entry{Definition}     
  735. Same as definition of ``chronon''.
  736.  
  737. \entry{Alternative Names}   
  738. Chronon, instant, atomic time unit, time unit.
  739.  
  740. \entry{Discussion}
  741. Tick is concise, intuitive, and unpretentious.
  742.  
  743. \appendix
  744.  
  745. \section{Relevance Criteria for Concepts}
  746. \label{sec:rel}
  747.  
  748. It must be attempted to name only concepts that fulfill the following four
  749. requirements.
  750. \begin{description}
  751.     \item [R1] The concept must be specific to temporal databases.
  752.           Thus, concepts used more generally are excluded.
  753.     \item [R2] The concept must be well-defined. Before attempting to name
  754.           a concept, it is necessary to agree on the definition of the
  755.           concept itself.
  756.     \item [R3] The concept must be well understood. We have attempted
  757.           to not name a concept if a clear understanding of the
  758.           appropriateness, consequences, and implications of the
  759.           concept is missing. Thus, we avoid concepts from research
  760.           areas that are currently being explored.
  761.     \item [R4] The concept must be widely used. We have avoided concepts
  762.           used only sporadically within the field.
  763. \end{description}
  764.  
  765. \section{Evaluation Criteria for Naming Concepts}
  766. \label{sec:eva}
  767.  
  768. Below is a list of criteria for what is a good name. These criteria
  769. should be referenced when proposing a glossary entry. The criteria are
  770. sometimes conflicting, making the choice of names a difficult and
  771. challenging task. While this list is comprehensive, it is not complete.
  772.  
  773.   \begin{description}
  774.     \item [E1] The naming of concepts should be orthogonal. Parallel
  775.           concepts should have parallel names.
  776.     \item [E2] Names should be easy to write, i.e., they should be
  777.           short or possess a short acronym, should be easily
  778.           pronounced (the name or its acronym), and should be
  779.           appropriate for use in subscripts and superscripts.
  780.     \item [E3] Already widely accepted names are preferred over new
  781.           names.
  782.     \item [E4] Names should be open-ended in the sense that the name
  783.           of a concept should not prohibit the invention of a parallel
  784.           name if a parallel concept is defined.
  785.     \item [E5] We have avoided creating homographs and homonyms. Names
  786.           with an already accepted meaning, e.g., an informal meaning,
  787.           should not be given an additional meaning.
  788.     \item [E6] We have striven to be conservative when naming
  789.           concepts. No name is better than a bad name.
  790.     \item [E7] New names should be consistent with related and already
  791.           existing and accepted names.
  792.     \item [E8] Names should be intuitive.
  793.     \item [E9] Names should be precise.
  794.   \end{description}
  795.  
  796. \section{Overview of Existing Terms}
  797. \label{sec:ove}
  798.  
  799. The following list of temporal database terms appeared as complete
  800. glossary entries in ``Jensen, C.~S., J.~Clifford, S.~K.~Gadia,
  801. A.~Segev, and R.~T.~Snodgrass: {\em A Glossary of Temporal Database
  802. Concepts,} {\it ACM SIGMOD Record\/}, Vol.~21, No.~3, September 1992,
  803. pp.~35--43.
  804.  
  805. \dicstart
  806. \name{bitemporal relation}
  807. A {\em bitemporal relation\/} is a relation with exactly one system
  808. supported valid time and exactly one system-supported transaction
  809. time.
  810.  
  811. \name{chronon}
  812. A {\em chronon} is the shortest duration of time supported by a
  813. temporal DBMS---it is a nondecomposable unit of time. A particular
  814. chronon is a subinterval of fixed duration on time-line.
  815.  
  816. Various models of time have been proposed in the philosophical and
  817. logical literature of time (e.g., van Benthem). These view time, among
  818. other things, as discrete, dense, or continuous. Intuitively, discrete
  819. models of time are isomorphic to the natural numbers, i.e., there is
  820. the notion that every moment of time has a unique successor. Dense
  821. models of time are isomorphic to (either) the real or rational
  822. numbers: between any two moments of time there is always another.
  823. Continuous models of time are isomorphic to the real numbers, i.e.,
  824. both dense and also, unlike the rational numbers, with no ``gaps.''
  825.  
  826. \name{event}
  827. An {\em event} is an isolated instant in time. An event is said to
  828. occur at time $t$ if it occurs at any time during the chronon
  829. represented by $t$.
  830.  
  831. \name{interval}
  832. An {\em interval} is the time between two events. It may be
  833. represented by a set of contiguous chronons.
  834.  
  835. \name{lifespan}
  836. The {\em lifespan} of a database object is the time over which it is
  837. defined. The valid-time lifespan of a database object refers to the
  838. time when the corresponding object exists in the modeled reality,
  839. whereas the transaction-time lifespan refers to the time when the
  840. database object is current in the database.
  841.  
  842. If the object (attribute, tuple, relation) has an associated timestamp
  843. then the lifespan of that object is the value of the timestamp. If
  844. components of an object are timestamped, then the lifespan of the
  845. object is determined by the particular data model being employed.
  846.  
  847. \name{snapshot relation}
  848. Relations of a conventional relational database system incorporating
  849. neither valid-time nor trans\-action-time timestamps are {\em snapshot
  850. relations\/}.
  851.  
  852. \name{snapshot, valid- and transaction-time, and bitemporal as
  853. modifiers}
  854. The definitions of how ``snapshot,'' ``valid-time,''
  855. ``transaction-time,'' and ``bitemporal'' apply to relations provide
  856. the basis for applying these modifiers to a range of other concepts.
  857. Let $x$ be one of snapshot, valid-time, transaction-time, and
  858. bitemporal. Twenty derived concepts are defined as follows (+E1).
  859.  
  860.   \begin{description}
  861.     \item [relational database] An $x$ relational database contains
  862.           one or more $x$ relations.
  863.     \item [relational algebra] An $x$ relational algebra has relations
  864.           of type $x$ as basic objects.
  865.     \item [relational query language] An $x$ relational query language
  866.           manipulates any possible $x$ relation. Had we used
  867.           ``some'' instead of ``any'' in this definition, the
  868.           defined concept would be very imprecise ($-$E9).
  869.     \item [data model] An $x$ data model has an $x$ query language and
  870.           supports the specification of constraints on any $x$
  871.           relation.
  872.     \item [DBMS] An $x$ DBMS supports an $x$ data model.
  873.   \end{description}
  874.  
  875. The two model-independent terms, data model and DBMS, may be
  876. replaced by more specific terms. For example, ``data model'' may be
  877. replaced by ``relational data model'' in ``bitemporal data model.''
  878.  
  879. \name{span}
  880. A {\em span} is a directed duration of time. A duration is an amount
  881. of time with known length, but no specific starting or ending
  882. chronons.  For example, the duration ``one week'' is known to have a
  883. length of seven days, but can refer to any block of seven consecutive
  884. days. A span is either positive, denoting forward motion of time, or
  885. negative, denoting backwards motion in time.
  886.  
  887. \name{temporal as modifier}
  888. The modifier {\em temporal\/} is used to indicate that the modified
  889. concept concerns some aspect of time.
  890.  
  891. \name{temporal database}
  892. A {\em temporal} database supports some aspect of time, not counting
  893. user-defined time.
  894.  
  895. \name{temporal element}
  896. A {\em temporal element} is a finite union of $n$-dimensional time
  897. boxes. Temporal elements are closed under the set theoretic operations
  898. of union, intersection and complementation.
  899.  
  900. Temporal elements may be used as timestamps. Special cases of
  901. temporal elements occur as timestamps in valid-time relations,
  902. transaction-time relations, and bitemporal relations. These special
  903. cases are termed {\em valid-time elements}, {\em transaction time
  904. elements}, and {\em bitemporal elements}. They are defined as finite
  905. unions of valid-time intervals, transaction-time intervals, and
  906. bitemporal rectangles, respectively.
  907.  
  908. \name{temporal expression}
  909. A {\em temporal expression\/} is a syntactic construct used in a query
  910. that evaluates to a temporal value, i.e., an event, an interval, a
  911. span, or a temporal element.
  912.  
  913. In snapshot databases, expressions evaluate to relations and therefore
  914. they may be called relational expressions to differentiate them from
  915. temporal expressions. All approaches to temporal databases allow
  916. relational expressions. Some only allow relational expressions, and
  917. thus they are unisorted. Some allow relational expressions, temporal
  918. expressions and also possibly boolean expressions. Such expressions
  919. may defined through mutual recursion.
  920.  
  921. \name{temporally homogeneous}
  922. A temporal tuple is {\em temporally homogeneous\/} if the lifespan
  923. of all attribute values within it are identical. A temporal relation is
  924. said to be temporally homogeneous if its tuples are temporally
  925. homogeneous. A temporal database is said to be temporally homogeneous
  926. if all its relations are temporally homogeneous. In addition to being
  927. specific to a type of object (tuple, relation, database), homogeneity
  928. is also specific to some time dimension, as in ``temporally
  929. homogeneous in the valid-time dimension'' or ``temporally homogeneous
  930. in the transaction-time dimension.''
  931.  
  932. The motivation for homogeneity arises from the fact that no timeslices
  933. of a homogeneous relation produce null values. Therefore a homogeneous
  934. relational model is the temporal counterpart of the snapshot
  935. relational model without nulls. Certain data models assume temporal
  936. homogeneity. Models that employ tuple timestamping rather than
  937. attribute value timestamping are necessarily temporally
  938. homogeneous---only temporally homogeneous relations are possible.
  939.  
  940. \name{time-invariant attribute}
  941. A {\em time-invariant attribute} is an attribute whose value is
  942. constrained to not change over time. In functional terms, it is a
  943. constant-valued function over time.
  944.  
  945. \name{timestamp}
  946. A {\em timestamp\/} is a time value associated with some time-stamped
  947. object, e.g., an attribute value or a tuple. The concept may be
  948. specialized to valid timestamp, transaction timestamp, interval
  949. timestamp, event timestamp, bitemporal element timestamp, etc.
  950.  
  951. \name{transaction time}
  952. A database fact is stored in a database at some point in time, and
  953. after it is stored, it may be retrieved. The {\em transaction time\/}
  954. of a database fact is the time when the fact is stored in the
  955. database. Transaction times are consistent with the serialization
  956. order of the transactions. Transaction time values cannot be after the
  957. current time. Also, as it is impossible to change the past,
  958. transaction times cannot be changed. Transaction times may be
  959. implemented using transaction commit times.
  960.  
  961. \name{transaction-time relation}
  962. A {\em transaction-time relation\/} is a relation with exactly one
  963. system supported transaction time. As for valid-time relations, there
  964. are no restrictions as to how transaction times may be associated with
  965. the tuples.
  966.  
  967. \name{transaction timeslice operator}
  968. The {\em transaction timeslice operator\/} may be applied to any
  969. relation with a transaction time. It also takes as argument a time
  970. value not exceeding the current time, {\em NOW\/}. It returns the
  971. state of the argument relation that was current at the time specified
  972. by the time argument.
  973.  
  974. \name{user-defined time}
  975. {\em User-defined time\/} is an uninterpreted attribute domain of date
  976. and time. User-defined time is parallel to domains such as ``money''
  977. and integer---unlike transaction time and valid time, it has no
  978. special query language support. It may be used for attributes such as
  979. ``birth day'' and ``hiring date.''
  980.  
  981. Conventional database management systems generally support a time
  982. and/or date attribute domain. The SQL2 standard has explicit support
  983. for user-defined time in its {\tt datetime} and {\tt interval} types.
  984.  
  985. \name{valid time}
  986. The {\em valid time\/} of a fact is the time when the fact is true in
  987. the modeled reality. A fact may have associated any number of events
  988. and intervals, with single events and intervals being important
  989. special cases.
  990.  
  991. \name{valid-time relation}
  992. A {\em valid-time relation\/} is a relation with exactly one system
  993. supported valid time. In agreement with the definition of valid time,
  994. there are no restrictions on how valid times may be associated with
  995. the tuples (e.g., attribute value time stamping may be employed).
  996.  
  997. \name{valid timeslice operator}
  998. The {\em valid timeslice operator\/} may be applied to any relation
  999. with a valid time. It takes as argument a time value. It returns
  1000. the state of the argument relation that was valid at the time of the
  1001. time argument.
  1002. \dicend
  1003.  
  1004. \end{document}